﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using VOL.Core.Utilities;
using VOL.Entity.DomainModels;

namespace VOL.Domain.IServices.SchedulingManagement
{
    public interface IShiftplanningService
    {
        /// <summary>
        /// 批量添加排班计划
        /// </summary>
        /// <param name="shiftplannings">排班计划列表</param>
        /// <returns></returns>
        Task<WebResponseContent> BatchAddShiftplannings(List<Shiftplanning> shiftplannings);

        /// <summary>
        /// 批量删除排班计划
        /// </summary>
        /// <param name="ids">要删除的排班计划ID列表</param>
        /// <returns></returns>
        Task<WebResponseContent> BatchDeleteShiftplannings(int[] ids);

        /// <summary>
        /// 更新排班计划
        /// </summary>
        /// <param name="shiftplanning">排班计划实体</param>
        /// <returns></returns>
        Task<WebResponseContent> UpdateShiftplanning(Shiftplanning shiftplanning);

        /// <summary>
        /// 获取排班计划列表（带分页和查询）
        /// </summary>
        /// <param name="teamCode">班组编码（可选，用于查询）</param>
        /// <param name="planDate">计划日期（可选，用于查询）</param>
        /// <param name="shiftType">班次类型（可选，用于查询）</param>
        /// <param name="pageIndex">当前页码</param>
        /// <param name="pageSize">每页显示数量</param>
        /// <returns></returns>
        Task<WebResponseContent> GetShiftplanningList();
    }
}
